<?php
    /*
    Autor: Jonathan Vindas Abarca
    Fecha: 21/11/2012
    Descripción: Este archivo contiene la declaración de funciones para obtener datos de la tabla de 
    lineasFacturaExportacion de la base de datos SQL Server.
    Bitacora de modificaciones:
    <
    Autor: 
    Fecha: 
    Descripción: 
    >
    */
    function agregarLineasFacturaExportacion($numeroItem,$descripcion,$volumen,$valorUnitario,
            $precioTotal,$volumenTotal,$subtotal,$freight,$Total,$codigoCompania,$invoiceNumber,$codigoCliente)
    {
        require_once 'FirePHPCore/FirePHP.class.php';        
        $firephp = FirePHP::getInstance(true);
        require_once 'dataModelo.php';
        $conexion=conexion();
        $insert="insert into LineasFactura(numeroItem,descripcion,volumen,valorUnitario,precioTotal,volumenTotal,subtotal,freight,Total,codigoCompania,invoiceNumber,codigoCliente, estado) values ('$numeroItem','$descripcion',$volumen,$valorUnitario,$precioTotal,$volumenTotal,$subtotal,$freight,$Total,'$codigoCompania','$invoiceNumber','$codigoCliente','A')";        
        $firephp->log($insert, 'sentencia insert');
        $firephp->log($numeroItem, 'item modelo');
        $firephp->log($descripcion, 'descripcion modelo');
        $firephp->log($volumen, 'volumen modelo');
        $firephp->log($valorUnitario, 'valor unitario modelo');
        $firephp->log($precioTotal, 'precio total modelo');
        $firephp->log($volumenTotal, 'volumen modelo');
        $firephp->log($subtotal, 'sub modelo');
        $firephp->log($freight, 'flete modelo');        
        $firephp->log($Total, 'total modelo');
        $firephp->log($codigoCompania, 'compania modelo');
        $firephp->log($invoiceNumber, 'factura modelo');
        $firephp->log($codigoCliente, 'cliente modelo');
        $insert="insert into LineasFactura(numeroItem,descripcion,volumen,valorUnitario,precioTotal,volumenTotal,subtotal,freight,Total,codigoCompania,invoiceNumber,codigoCliente) values ('$numeroItem','$descripcion',$volumen,$valorUnitario,'$precioTotal',$volumenTotal,'$subtotal','$freight',$Total,'$codigoCompania','$invoiceNumber','$codigoCliente')";                       
        
        if (!odbc_exec($conexion,$insert))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
    }
    
    function desactivarLineasFacturaExportacion($invoiceNumber, $codigoCompania, $codigoCliente)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
        //$update="exec SP003EliminarEmbalajeControlador '$CodigoEmbalaje'";
        //$delete="delete from LineasFactura where invoiceNumber ='$invoiceNumber'  and codigoCompania='$codigoCompania' and codigoCliente='$codigoCliente'";
        $delete="update LineasFactura 
        set 
        estado='D'
        where invoiceNumber='$invoiceNumber' and 
        codigoCliente='$codigoCliente' and
        codigoCompania='$codigoCompania'";
        if (!odbc_exec($conexion,$delete))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
    }
    

    function buscarLineasFacturaExportacion($numeroCliente,$numeroCompania,$numeroFactura)
    {
        require_once 'FirePHPCore/FirePHP.class.php';
        $firephp = FirePHP::getInstance(true);
        require_once 'dataModelo.php';
        $precioflete=obtenerPrecioFlete($numeroCliente,$numeroCompania,$numeroFactura);
        if(empty($precioflete)==true)
        {
            //La factura VC_000240 de la compania 006 y el cliente 00142 no se encuentra el precio de flete  
            $firephp->log(empty($precioflete), 'No se encontro recid');
        }
        $conexion1=  conexion_AX();
        $select="select distinct(cj.INVOICEID), ct.ITEMID,ct.NAME,ct.qty, ct.salesprice, ct.LINEAMOUNT
        from CUSTINVOICETRANS ct 
        inner join  CUSTINVOICEJOUR cj 
        on  cj.SALESID=ct.SALESID and cj.INVOICEID=ct.INVOICEID 
        and cj.INVOICEDATE=ct.INVOICEDATE and cj.NUMBERSEQUENCEGROUP=ct.NUMBERSEQUENCEGROUP
        where ct.INVOICEID = '$numeroFactura' and ct.DATAAREAID='$numeroCompania' and cj.INVOICEACCOUNT='$numeroCliente'";                
        $resulset = odbc_exec($conexion1,$select);       
        //$precioflete=obtenerPrecioFlete($numeroCliente,$numeroCompania,$numeroFactura);
        //$firephp->log($precioflete,"flete");
        $items=Array();
            while (odbc_fetch_row($resulset)){
                $item['numeroFactura']=odbc_result($resulset,"INVOICEID");
                $item['numeroArticulo']=odbc_result($resulset,"ITEMID");
                $item['nombreArticulo']=odbc_result($resulset,"NAME");                          
                $item['cantidad']=number_format(odbc_result($resulset,"qty"), 2);                                                    
                $item['precioUnitario']=number_format(odbc_result($resulset,"salesprice"), 2);                          
                $item['precioSubtotal']=number_format(odbc_result($resulset,"LINEAMOUNT"), 2);
                $precioSub=odbc_result($resulset,"LINEAMOUNT");
                $item['flete']=number_format($precioflete,2);                          
                $item['total']=number_format($precioflete+$precioSub,2);                          
                array_push($items,$item);
            }
        odbc_close($conexion1);
        return $items;
    }
    
    function obtenerRecidFactura($numeroCliente,$numeroCompania,$numeroFactura)
    {
        //$precioFlete=null;
        //$recid=null;
        require_once 'dataModelo.php';
        $conexion=  conexion_AX();
        $select="select recid from CUSTINVOICEJOUR where DATAAREAID='$numeroCompania' and INVOICEACCOUNT='$numeroCliente' and invoiceid='$numeroFactura'";                
        $rs = odbc_exec($conexion,$select);        
            while (odbc_fetch_row($rs)){
                $recid=odbc_result($rs,"recid");            
            }
            odbc_close($conexion);
            return $recid;        
    }
    
    function obtenerPrecioFlete($numeroCliente,$numeroCompania,$numeroFactura)
    {   
        require_once 'dataModelo.php';
        $conexion2 =  conexion_AX();
        $recid=obtenerRecidFactura($numeroCliente,$numeroCompania,$numeroFactura);
        $select2="select VALUE from MARKUPTRANS where TRANSRECID='$recid' and TRANSTABLEID='62'";
        $rs2 = odbc_exec($conexion2,$select2);        
            while (odbc_fetch_row($rs2)){
                $precioFlete=odbc_result($rs2,"VALUE");            
            }
            odbc_close($conexion2);
        return $precioFlete;
        
    }
    
    function obtenerLineaFacturaExportacion($invoiceNumber, $codigoCompania, $codigoCliente)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
        $select="select numeroItem, descripcion, volumen, valorUnitario, volumenTotal, subtotal, freight, total from LineasFactura where invoiceNumber ='$invoiceNumber' and codigoCompania='$codigoCompania' and codigoCliente='$codigoCliente'";        
        $rs = odbc_exec($conexion,$select);
        $items=Array();
            while (odbc_fetch_row($rs)){              	                
                $item['numeroItem']=odbc_result($rs,"numeroItem");
                $item['descripcion']=odbc_result($rs,"descripcion");
                $item['volumen']=odbc_result($rs,"volumen");                
                $item['valorUnitario']=odbc_result($rs,"valorUnitario");
                $item['volumenTotal']=odbc_result($rs,"volumenTotal");
                $item['subtotal']=odbc_result($rs,"subtotal");
                $item['freight']=odbc_result($rs,"freight");
                $item['total']=odbc_result($rs,"total");                
                array_push($items,$item);
            }
        odbc_close($conexion);
        return $items;
    }
    
     function validarExisteDependeciaArticuloConFactura($codigoCliente, $codigoCompania, $codigoFactura)
     {
        //select codigoContrato, codigoCliente, codigoCompania from Contratos where codigoCliente='00019' and codigoCompania='006'
        require_once 'dataModelo.php';
       $conexion=conexion();
       $existe=false;
       $conexion=conexion();       
       //$rs = odbc_exec($conexion,  "select Embalaje, Localidad from precios where Embalaje='".$tipoEmbalaje."' and Localidad='".$localidad."'");       
       $select="select numeroItem from LineasFactura where codigoCliente='$codigoCliente' and codigoCompania='$codigoCompania' and invoiceNumber='$codigoFactura'";       
       $rs = odbc_exec($conexion,$select);       
       if (!$conexion) 
       {           
           exit( "Error al conectar: " . $conexion);
       }
       else
       {           
           $existe=odbc_fetch_row($rs);             
       }
       odbc_close($conexion);
       return $existe;
    }
    
    function activarLineaFactura($codigoFactura,$codigoCliente,$codigoCompania)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
        //$update="exec SP003EliminarEmbalajeControlador '$CodigoEmbalaje'";
        //$delete="delete from LineasFactura where invoiceNumber ='$invoiceNumber'  and codigoCompania='$codigoCompania' and codigoCliente='$codigoCliente'";
        $delete="update LineasFactura 
        set 
        estado='A'
        where invoiceNumber='$codigoFactura' and 
        codigoCliente='$codigoCliente' and
        codigoCompania='$codigoCompania'";
        if (!odbc_exec($conexion,$delete))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
    }
?>
